@page "/pdf/xfa-form-filling"
@inject Microsoft.JSInterop.IJSRuntime JS
@using System.IO
@using Syncfusion.Blazor.Buttons
@inject Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment
@inherits SampleBaseComponent;
@*Hidden:Lines*@

@using BlazorDemos.Data.FileFormats.PDF

@*End:Hidden*@

<SampleDescription>
  <p>This sample demonstrates how to fill and flatten XFA form fields. It is possible to edit and remove the existing XFA form fields.</p>  
</SampleDescription>
<ActionDescription>
   <p>This feature can be used in filling forms from the database or from user and read out form fields for transferring user data to database. More information about the XFA can be found in this documentation <a target='_blank'
href='https://help.syncfusion.com/file-formats/pdf/working-with-xfa?_ga=2.213467860.1703522802.1584005056-1302582622.1556169414'>section.</a></p>
</ActionDescription>

<div class="control-section">
    <p style="font-weight:normal">Click the button to view a PDF document generated by Essential PDF. Please note that Adobe Reader or its equivalent is required to view the resultant document. </p>

    <div class="button-section">
        <div id="button-control">
            <div class="row">
                <div>
                    <SfButton @onclick="XFAFormFillingPDF">Generate PDF</SfButton>
                </div>
            </div>
        </div>
    </div>
</div>

<style>
    .radio-control {
        margin: 0 0 5% 0;
    }

    .control-section .row {
        margin: 10px 0;
    }
</style>

@code {
   
    /// <summary>
    /// Create and download the simple PDF document
    ///<summary>
    protected async void XFAFormFillingPDF(MouseEventArgs args)
    {	   
        XFAFormFillingService service = new XFAFormFillingService(hostingEnvironment);
        MemoryStream documentStream = service.XFAFormFillingPDF();
        await JS.SaveAs("XFAFormFilling.pdf", documentStream.ToArray());
    }
}
